NewRelicのダッシュボードのスナップショットを定期的にSlackへ送信する仕組みをAWSで作ってみた
最近NewRelicのDashboardでSLIの計測をしているのですが、普段からDashboardを意識的に確認することもないため、定期的にSlack通知してほしいという要望がありました。
公式で提供されている機能はなく、いくつか似たようなことをやっているリポジトリは見つけたのですが、これというモノがなかったので自分で作ってみました。
GitHub: seiichi1101/newrelic-dashboard-slack-exporter
機能要望などあればISSUEやコメントいただけるとうれしいです。
使い方
上記のリンクからCloudFormationのデプロイをすればOKです。
CloudFormationのデプロイに必要なパラメーターについては下記のとおりです。
- NEWRELICAPIKEY
- NewRelicのUser API Key
- https://docs.newrelic.com/docs/apis/intro-apis/new-relic-api-keys#user-key
- NEWRELICGUID
- 該当のDashboardのGUID
- SCHEDULE
- CloudWatch Eventのスケジュールで利用するCron表記
- https://docs.aws.amazon.com/systems-manager/latest/userguide/reference-cron-and-rate-expressions.html
- SLACKPATH
- SlackのWebhook URL
https://hooks.slack.com/
以下のパスを入力- SlackのWebhookの設定はこちらがわかりやすかったです
- SLACKSUBJECT
- Slackに通知がおくられた際に表示されるタイトルです
- なんでもいいです
無事にデプロイされると、下記の様に通知が飛んでいるのが確認できるはずです。
仕組み
仕組みは図の通りとてもシンプルです。
CloudWatch EventのスケジュールでLambdaを起動し、NewRelicからダッシュボードのスナップショットを取得してSlackへ送信しています。
- Ref
まとめ
いかがだったでしょうか。
どなたかのお役にたてば幸いです。